<?php

namespace App\Http\Controllers\Admin;

use App\Model\Category;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Validator;

class CategoryController extends CommonController
{
    //get 过来的数据 admin/category 全部分类列表
    public function index()
    {
        $category = (new Category)->tree();         //调用public方法
      //  $data=Category::tree(); //从模型中获取方法--获取分类树;不是静态方法，不能用::调用  【静态方法】
     //   $data=$this->getTree($categorys,'cat_name','cat_id','cat_pid');
//dd($category);
        //将分类信息 发送到模板中
      //  return view('admin.category.index')->with('data',$categorys);
        //改为返回 重组的树形分类数据
       // return view('admin.category.index')->with('data',$data);
        return view('admin.category.index')->with('data',$category);
    }
    
    //异步提交的方法
    public function changeOrder()
    {
        //测试连通 echo 12312312;
        $input =Input::all();
        $cat = Category::find($input['cat_id']);
        $cat->cat_order =$input['cat_order'];
        $re=$cat->update();
        if($re){
            $data=[
                'status' =>0,
                'msg'=>'排序成功',
            ];
        }else{
            $data=[
                'status' =>1,
                'msg'=>'排序失败',
            ];
        }
    return $data;
        //测试 是否返回 echo $re;
        //dd($input);
        //echo $input['cat_order'];       //测试是否能取出排序
        //echo $input['cat_id'];
    }

//    添加分类提交方法【提交地址】
    //post admin/category
    public function store()
    {
//        排除法，除了token全部通过
        $input = Input::except('_token');
//        dd($input);
        //验证规则
        $rules = [
            'cat_name'=>'required',      //必填
        ];
        $message =[
            'cat_name.required'=>'分类名称 不能为空',  //指向提示信息
            'cat_order.required'=>'排序序号 不能为空',
        ];

        //验证方法 字段，规则，自定义提示信息
        $validator = Validator::make($input,$rules,$message);
        //判断验证成功失败
        if($validator->passes()){
            //通过验证则写入
            $re = Category::create($input);
//dd($re);
            if($re){
                return redirect('admin/category');
            }else{
                return back()->withErrors('数据填充失败，请稍后再试！');
            }
        }else{
            return back()->withErrors($validator);
        }

        //dd($input);
    }

    //get admin/category/create 添加分类
    public function create()
    {
        //        动态获取分类
        $data= Category::where('cat_pid',0)->get();
        return view('admin/category/add',compact('data'));
        //echo 'ty';
    }

    //delete admin/category/{category}  删除单个分类
    public function destroy()
    {

    }

    //get admin/category/{category}/edit    编辑分类
    public function edit($cat_id)
    {
//    echo $cat_id;
//    分类中查询id
    $field=Category::find($cat_id);
        $data= Category::where('cat_pid',0)->get();
    //dd($field);
    return view('admin.category.edit',compact('field','data'));
    }


    //put/patch admin/category/{category} 更新分类
    public function update($cat_id)
    {
        //        dd(Input::except('_token','_method'));   //测试
        $input = Input::except('_token','_method');
        //更新
       $re= Category::where('cat_id',$cat_id)->update($input);
//         dd($re);  //成功返回1，没有修改或者内容没变化返回0
//        成功判断
        if($re){
            return redirect('admin/category');
        }else{
            return back()->withErrors('分类信息更新失败，请稍后重试');
        }
    }

    //get admin/category/{category} 显示单个分类信息
    public function show()
    {

    }




}
